;

// 加密函数


/*//const key = CryptoJS.enc.Utf8.parse("mythinkphpmythinkphpmyth");  //十六进制数作为密钥
//const iv = CryptoJS.enc.Utf8.parse("1234567812345678");  //十六进制数作为密钥
const key = "mythinkphpmythinkphpmyth";
const iv = "1234567812345678";
let from = 'hahaha';
enStr = Encrypt4(from);
deStr = Decrypt4(enStr);
console.log('原始字符串：' + from)
console.log('加密字符串：' + enStr)
console.log('解密字符串：' + deStr)*/

// 转换数据
function toData(is_encode, key, iv, data) {
    if (is_encode) {
        //data =CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(data))
        //data =CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(JSON.stringify(data)))

        //return encrypt(key, iv, JSON.stringify(data));


        data = encrypt(key, iv, JSON.stringify(data));

        return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(data))
    }

    //let enStr = Encrypt4(key, iv, data);
    //return {ContentToken: enStr}

    return data;
}

// 解析返回
function toResponse(is_encode, key, iv, data) {
    if (is_encode) {
        data = CryptoJS.enc.Base64.parse(data).toString(CryptoJS.enc.Utf8)
        data = JSON.parse(decrypt(key, iv,  data))

        return data;
    }

    //let enStr = Encrypt4(key, iv, data);
    //return {ContentToken: enStr}

    return data;
}

// DES加密函数
function encrypt(key, iv, data) {
    key = CryptoJS.enc.Utf8.parse(key);  //十六进制数作为密钥
    iv = CryptoJS.enc.Utf8.parse(iv);  //十六进制数作为密钥

    // 使用DES算法对数据进行加密
    var encrypted = CryptoJS.AES.encrypt(data, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC, // 使用CBC模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });

    return encrypted.toString(); // 返回加密后的字符串
}

// DES解密函数
function decrypt(key, iv, content) {
    key = CryptoJS.enc.Utf8.parse(key);  //十六进制数作为密钥
    iv = CryptoJS.enc.Utf8.parse(iv);  //十六进制数作为密钥

    // 使用DES算法对内容进行解密
    // 去除换行符
    var bytes = CryptoJS.AES.decrypt(content, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC, // 使用CBC模式
        padding: CryptoJS.pad.Pkcs7 // 使用PKCS7填充方式
    });

    // 将解密后的字节数组转换为UTF-8编码的字符串，并返回
    var decryptResult = bytes.toString(CryptoJS.enc.Utf8);
    //return CryptoJS.enc.Utf8.stringify(bytes);

    return decryptResult.toString();
}
